/******************************************************************************

  File Name     : alg_api.h
  Version       : Initial Draft
  Author        : tongzhilin
  Created       : 2020/8/7
  Last Modified :
  Description   : alg_api
  Function List :
  History       :
  1.Date        : 2020/8/7
    Author      : tongzhilin
    Modification: Created file

******************************************************************************/
#pragma once
#include "alg_struct.h"

/*
** test functions
*/
INT32       Alg_Module_Test(ALG_INIT_PARAMS* _pstInitParams);

/*
** init/deinit functions
*/
ALG_HANDLE  Alg_Face_Detect_Init(ALG_INIT_PARAMS* _pstInitParams);
INT32       Alg_Face_Detect_DeInit(ALG_HANDLE _pHandle);

ALG_HANDLE  Alg_Face_LMK_Init(ALG_INIT_PARAMS* _pstInitParams);
INT32       Alg_Face_LMK_DeInit(ALG_HANDLE _pHandle);

ALG_HANDLE  Alg_Face_Feature_Init(ALG_INIT_PARAMS* _pstInitParams);
INT32       Alg_Face_Feature_DeInit(ALG_HANDLE _pHandle);

/*
** common functions
*/
INT32       Alg_Face_Forward_Image(ALG_HANDLE _pHandle, ALG_IMAGE_S* _pstImage, INT32 _s32MaxRet, void *_pstResult);
INT32       Alg_Face_Forward_Image_Rects(ALG_HANDLE _pHandle, ALG_IMAGE_S* _pstImage, 
    ALG_RECT_S *_pstRect, INT32 _s32RectNum, void *_pstResult);
INT32       Alg_Face_Forward_Image_Lmk5pts(ALG_HANDLE _pHandle, ALG_IMAGE_S* _pstImage, 
    ALG_FACELMK_RESULT_S *_pstLmk, INT32 _s32FaceNum, void *_pstResult);
INT32       Alg_Face_Get_Input_C(ALG_HANDLE _pHandle);
INT32       Alg_Face_Get_Input_H(ALG_HANDLE _pHandle);
INT32       Alg_Face_Get_Input_W(ALG_HANDLE _pHandle);
INT32       Alg_Face_Feature_Cmp_Consin(ALG_FACEFEATURE_RESULT_S* _pstFeat1, ALG_FACEFEATURE_RESULT_S* _pstFeat2);
INT32       Alg_Face_Feature_Cmp_Euclidean(ALG_FACEFEATURE_RESULT_S* _pstFeat1, ALG_FACEFEATURE_RESULT_S* _pstFeat2);
